【書評】「AWS を使って学ぶ 監視設計」 #技術書典
園部です。
残念ながら現地開催はされなかった 技術書典8 で頒布予定だった 「AWS を使って学ぶ 監視設計」 を電子版で購入し読みました! とても良かったので、紹介させていただきたいと思います。
概要
(上記販売ページより引用)
この本について
主に監視の設計手法を紹介する本です。
この本では、「モニタリング(監視)」 というテーマについて、CloudWatchを中心にAWSの各サービスを見ながら、どのように監視を設計していくかを著者の経験を基に説明していきます。 私自身、ここ数年で開発メンバー、リーダー、テックリードといくつかの立場を経験しましたが、どの立場にいてもシステム開発に携わる以上、監視というのは重要な要素になってきます。特にここ数年はSLI/SLOを導入するなど、監視について考える機会 が多くありました。そこで、この経験をアウトプットとして出してみたいと思い、この本を執筆しました。 「監視設計」という部分はシステム開発の最初から携わっ ていれば経験しますが、運用から参加するような場合は既にでき あがっていて、既存の仕組みをあまり考えず使うことが多いで す。そのため、いざ設計するタイミングになるとどこから手を付 けていいかわからないという状態に陥ります。そんな時にこの本 が役に立てば幸いです。
対象読者
● 監視設計の経験がない人
● AWSの監視サービスを一通り知りたい人
● 他のエンジニアがどのように監視を考えているか興味がある人
● もう一度監視について考えるきっかけが欲しい人
本書で得られること
● 監視設計のノウハウとやり方
● AWSの監視サービスの知識
● SLI/SLOの考え方
個人的なお勧めポイント
たくさんのナレッジがつまっているのですが、個人的にとても参考になった部分をお勧めポイントとして紹介させていただきます。
AWS 監視系サービスのふりかえり
本書内ではタイトルの通り、監視項目・要素に対して AWS 監視系サービスが紹介されています。 ここ数年で CloudWatch を中心に多くの機能がリリースされています。以前なら実現できなかったことも可能となっていますが、なかなかキャッチアップが追いつかない方もいらっしゃると思います。私もその一人です。。そのため、改めて監視について考えるとともに今の AWS 監視系サービスなら何が実現できるのか、また何が不足するのかをふりかえることが出来ます。
個人的には Elasticsearch や X-Ray はキャッチアップ出来ていない分野だったので、改めて興味がわきました。学ばねば。
SLI / SLO のケーススタディ
第2章で、そもそも SLI/SLO とは?が説明されており、第6章で実際にケーススタディとしてSLI/SLO を定義する考え方や計算方法が紹介されています。SLI / SLO の考え方が重要となっていることは認識したが実際に、どんな項目を定義するのが良いのか? そして、どうやって計算すれば良いのかについて悩みを抱えている方にお勧めです。もちろん、本書内で紹介されている内容が全てではなく、サービス・ビジネスによって異なるのですが、具体的な例を知ることで自分の環境にあてはめて考える助けになることは間違いありません。素晴らしいナレッジです。
各章と概要紹介
第1章 監視の設計
監視の目的について改めて考えるところからスタートします。 著者は 「サービスの価値を確認するため」 に行うものだと考えていると紹介されています。なぜ今、以前のような個々のサーバをつぶさに監視するより、サービスとして考える思考が進んでいるのか(アーキテクチャや支える基盤の変化も含めて)は、監視の目的が「ユーザーに最適なサービスを提供するため」であることに立ち返ることで腹落ちするのではないでしょうか。
続いて、監視設計における考え方、監視に必要な処理が説明されています。その中で、メトリクスの送信方法( Push 型 / Pull 型)が取り上げられており先日参加した Observability Japan Online #1 でも話が出ていました。CloudWatch はPush型ですね。
第2章 SLI / SLO
SLI / SLO とは?から始まり、なぜ必要となるのかが説明されています。著者が 「サービスの品質」 というのはエンジニアだけの問題ではありません。企画や営業などサービスにか関わる全ての人が関心を持っているトピックです。 と紹介されており、個人的にはとても重要な考えだと思います。以前、Yappli さんでサービスに影響のあるアラートはビジネスサイドのメンバーにも通知していると話されていたのを思い出しました。これも同じような意図ではないかと思います。最近、ビジネス・サービスメトリクスに注目が出ていることも含めて、エンジニア以外にもサービスに関心をいただいてもらい、新しい施策や改善の指標とすることでよりよいサービスを提供する下地になるのだと思います。
私なりに以前、Datadog を利用して SLO について記事を書いたので宣伝のように貼っておきます w
第3章 AWS における監視設計
AWS の監視サービス(CloudWatch、X-Ray、Elasticsearch )を項目毎に紹介されています。GA 前ではありますが CloudWatch Synthetics にも触れられています。(待ってます。GA) 全体を把握することが出来ます。また 「 3.1 AWS における監視設計の方針 」で書かれている 「 AWS で完結することにこだわるより、監視として適切な方式を選択 」 という部分は重要だと思います。
監視はどのサービスを利用すれば良いですか?と質問をいただくことがあります。監視 SaaS の機能が豊富かつ同等のサービスが提供されている昨今では、一つにまとめたいという背景も理解できますが、対象サービスや関係者にとって良いものを適材適所で使い分けるのが現時点ではベターではないでしょうか。
第4章 監視対象の多様化
従来のインフラ監視以外にも対象が多様化している例として、CI/CD と IoT の監視・監視項目について紹介されています。 IoT デバイスから HTTP リクエスト数において、Anomaly Detection を活用するケース(リクエスト数がある程度で一定に収まることを想定)は確かに有意義なものではないかと思いました。
第5章 ダッシュボード
ダッシュボードの設計(作るための考え方)が紹介されています。最適なダッシュボード作りは永遠の課題ではないでしょうか。。表示するメトリクス、表現方法、表示順について順を追って説明がされています。
第6章 AWS 上のサーバーレスアプリケーションの監視(ケーススタディ)
サンプルアプリケーション(フロントエンドにSPA、バックエンドにAPI Gateway、Lambda、DynamoDB)を題材に、監視設計(SLI / SLO の定義から各サービスのメトリクス選定・収集、アラート設定、ダッシュボード作成)までが紹介されています。冒頭のお勧めポイントで記載させていただいた通り、素晴らしいナレッジです。
さいごに
入門監視を皮切りに、監視・モニタリングの考え方や意義が見直されていますが抽象的な部分もあり、実際に普段利用する AWS をベースに著者のナレッジが詰まった本書は、もう一歩踏み出したいが... といった方に最適な内容となっていると感じました。 80ページではありますが、現在 AWS を利用し監視を携わったことがある方であれば、スムーズに読み進めるかと思います。
あとがきに 「入門 監視」 もあるし書いてもなぁ... と書かれておりましたが、入門監視を読むのに挫折してしまった方や 「入門 監視」や先日発売された 「Webエンジニアのための監視システム実装ガイド」 のような厚めの本を読む前に、是非手に取って(ダウンロードですが w)欲しいなと思い、稚拙ながら書評として紹介させていただきました。
監視といえば、先日 OpsJAWS でも 「モニタリング」をテーマに MeetUp が開催されています。 登壇者の方の経験や知識が満載で、普段モニタリング / 監視に感じていた 「あるある」 や 「もやもや」 が言語化されていて、とても興味深い内容でした。 また O11y(Observability) 成熟モデルに関しても、注目が集まる中、体系だって取られることが有意義な内容でした。資料も公開されているのでご興味がある方は是非ご覧になってみてはいかがでしょうか?